home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / CCHEX.z / CCHEX
Text File  |  1996-03-14  |  4KB  |  199 lines

  1.  
  2.  
  3.  
  4. CCCCCCCCHHHHEEEEXXXX((((3333FFFF))))                                                            CCCCCCCCHHHHEEEEXXXX((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CCHEX   - CCHEX updates the Cholesky factorization
  10.  
  11.         A = CTRANS(R)*R
  12.  
  13.      of a positive definite matrix A of order P under diagonal permutations of
  14.      the form
  15.  
  16.         TRANS(E)*A*E
  17.  
  18.      where E is a permutation matrix.  Specifically, given an upper triangular
  19.      matrix R and a permutation matrix E (which is specified by K, L, and
  20.      JOB), CCHEX determines a unitary matrix U such that
  21.  
  22.         U*R*E = RR,
  23.  
  24.      where RR is upper triangular.  At the users option, the transformation U
  25.      will be multiplied into the array Z.  If A = CTRANS(X)*X, so that R is
  26.      the triangular part of the QR factorization of X, then RR is the
  27.      triangular part of the QR factorization of X*E, i.e. X with its columns
  28.      permuted.  For a less terse description of what CCHEX does and how it may
  29.      be applied, see the LINPACK Guide.
  30.  
  31.      The matrix Q is determined as the product U(L-K)*...*U(1) of plane
  32.      rotations of the form
  33.  
  34.         (    C(I)       S(I) )
  35.         (                    ) ,
  36.         ( -CONJG(S(I))  C(I) )
  37.  
  38.      where C(I) is real.  The rows these rotations operate on are described
  39.      below.
  40.  
  41.      There are two types of permutations, which are determined by the value of
  42.      JOB.
  43.  
  44.      1. Right circular shift (JOB = 1).
  45.  
  46.         The columns are rearranged in the following order.
  47.  
  48.         1,...,K-1,L,K,K+1,...,L-1,L+1,...,P.
  49.  
  50.         U is the product of L-K rotations U(I), where U(I)
  51.         acts in the (L-I,L-I+1)-plane.
  52.  
  53.      2. Left circular shift (JOB = 2).
  54.         The columns are rearranged in the following order
  55.  
  56.         1,...,K-1,K+1,K+2,...,L,K,L+1,...,P.
  57.  
  58.         U is the product of L-K rotations U(I), where U(I)
  59.         acts in the (K+I-1,K+I)-plane.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCCCCCHHHHEEEEXXXX((((3333FFFF))))                                                            CCCCCCCCHHHHEEEEXXXX((((3333FFFF))))
  71.  
  72.  
  73.  
  74. SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
  75.       SUBROUTINE CCHEX(R,LDR,P,K,L,Z,LDZ,NZ,C,S,JOB)
  76.  
  77. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  78.      On Entry
  79.  
  80.      RRRR COMPLEX(LDR,P), where LDR .GE. P.
  81.         R contains the upper triangular factor
  82.         that is to be updated.  Elements of R
  83.         below the diagonal are not referenced.
  84.  
  85.      LLLLDDDDRRRR INTEGER.
  86.         LDR is the leading dimension of the array R.
  87.  
  88.      PPPP INTEGER.
  89.         P is the order of the matrix R.
  90.  
  91.      KKKK INTEGER.
  92.         K is the first column to be permuted.
  93.  
  94.      LLLL INTEGER.
  95.         L is the last column to be permuted.
  96.         L must be strictly greater than K.
  97.  
  98.      ZZZZ COMPLEX(LDZ,NZ), where LDZ .GE. P.
  99.         Z is an array of NZ P-vectors into which the
  100.         transformation U is multiplied.  Z is
  101.         not referenced if NZ = 0.
  102.  
  103.      LLLLDDDDZZZZ INTEGER.
  104.         LDZ is the leading dimension of the array Z.
  105.  
  106.      NNNNZZZZ INTEGER.
  107.         NZ is the number of columns of the matrix Z.
  108.  
  109.      JJJJOOOOBBBB INTEGER.
  110.         JOB determines the type of permutation.
  111.         JOB = 1  right circular shift.
  112.         JOB = 2  left circular shift.  On Return
  113.  
  114.      RRRR contains the updated factor.
  115.  
  116.      ZZZZ contains the updated matrix Z.
  117.  
  118.      CCCC REAL(P).
  119.         C contains the cosines of the transforming rotations.
  120.  
  121.      SSSS COMPLEX(P).
  122.         S contains the sines of the transforming rotations.  LINPACK.  This
  123.      version dated 08/14/78 .  Stewart, G. W., University of Maryland, Argonne
  124.      National Lab.
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. CCCCCCCCHHHHEEEEXXXX((((3333FFFF))))                                                            CCCCCCCCHHHHEEEEXXXX((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      CCCCCCCCHHHHEEEEXXXX uses the following functions and subroutines. Extended BLAS CROTG
  141.      Fortran MIN0
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.